/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Controladores;

import Model.ServicoBO;
import java.util.ArrayList;
import javax.swing.table.AbstractTableModel;

/**
 *
 * @author joao.rodrigues
 */
public class CtrlTabelaServicos extends AbstractTableModel {
    
    //linhas
    private ArrayList<ServicoBO> linhas;
    //colunas
    private String[] colunas = {"Código", "Descrição", "Valor mão obra","Situação"};

    //construtor

    public CtrlTabelaServicos(ArrayList<ServicoBO> linhas) {
        this.linhas = linhas;
    }
    

    //quantidade de linahs
    public int getRowCount() {
        return linhas.size();
    }

    //quantidade de colunas
    public int getColumnCount() {
        return colunas.length;
    }

    //metodo que retorna objeto da linha
    public ServicoBO retornaCliente(int linhaSelecionada){

        return linhas.get(linhaSelecionada);

    }

    //metodo que torna a tabela ou celulas editavel
    @Override
    public boolean isCellEditable(int rowIndex, int columnIndex) {
        return false;
    }



    //renomeia as colunas
    @Override
    public String getColumnName(int column) {
        return colunas[column];
    }

    //retorna a class da coluna (ex: int, string)
    @Override
    public Class<?> getColumnClass(int columnIndex) {
        if (columnIndex == 0) {
            return Integer.class;
        } else if (columnIndex == 2) {
            return String.class;
        } else {
            return String.class;
        }
    }

    //coloca dados nos campos
    public Object getValueAt(int rowIndex, int columnIndex) {
        if (columnIndex == 0) {
            return linhas.get(rowIndex).getnCodServico();
        } else if (columnIndex == 1) {
            return linhas.get(rowIndex).getsDescServico();
        } else if (columnIndex == 2) {
            return linhas.get(rowIndex).getdValorMaoObra();
        }else{
            if(linhas.get(rowIndex).getnFlSituacao() == 1){
                return "Ativo";
            } else {
                return "Inativo";
            }
        }
    }
    public void atualiza_tabela(ArrayList<ServicoBO> novaTabela){
        this.linhas = novaTabela;
        fireTableRowsInserted(0, this.linhas.size()-1);

    }
}
